home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / Dev / Oberon / source / amiga / Timer.mod < prev    next >
Text File  |  1995-06-29  |  2KB  |  103 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: Timer.mod $
  4.   Description: Interface to timer.device
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.8 $
  8.       $Author: fjc $
  9.         $Date: 1995/06/04 23:13:14 $
  10.  
  11.   Includes Release 40.15
  12.  
  13.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  14.       All Rights Reserved
  15.  
  16.   Oberon-A interface Copyright © 1994-1995, Frank Copeland.
  17.   This file is part of the Oberon-A Interface.
  18.   See Oberon-A.doc for conditions of use and distribution.
  19.  
  20. ***************************************************************************)
  21.  
  22. <* STANDARD- *>
  23.  
  24. MODULE [2] Timer;
  25.  
  26. IMPORT e := Exec;
  27.  
  28. (*
  29. **      $VER: timer.h 36.16 (25.1.91)
  30. **
  31. **      Timer device name and useful definitions.
  32. *)
  33.  
  34. CONST
  35.  
  36. (* unit defintions *)
  37.   microHZ   * = 0;
  38.   vBlank    * = 1;
  39.   eClock    * = 2;
  40.   waitUntil * = 3;
  41.   waitEClock* = 4;
  42.  
  43.   timerName * = "timer.device";
  44.  
  45. TYPE
  46.  
  47.   TimeValPtr* = POINTER TO TimeVal;
  48.   TimeVal* = RECORD
  49.     secs*  : e.ULONG;
  50.     micro* : e.ULONG;
  51.   END; (* TimeVal *)
  52.  
  53.   EClockValPtr* = POINTER TO EClockVal;
  54.   EClockVal* = RECORD
  55.     hi* : e.ULONG;
  56.     lo* : e.ULONG;
  57.   END; (* EClockVal *)
  58.  
  59.   TimeRequestPtr* = POINTER TO TimeRequest;
  60.   TimeRequest* = RECORD (e.IORequestBase)
  61.     node* : e.IORequest;
  62.     time* : TimeVal;
  63.   END; (* TimeRequest *)
  64.  
  65. CONST
  66.  
  67. (* ioCommand to use for adding a timer *)
  68.   addRequest  * = e.nonstd;
  69.   getSysTime  * = e.nonstd+1;
  70.   setSysTime  * = e.nonstd+2;
  71.  
  72.  
  73. (*-- Device base variable----------------------------------------------*)
  74.  
  75. VAR
  76.  
  77.   base * : e.DevicePtr;
  78.  
  79. (*-- Device functions -------------------------------------------------*)
  80.  
  81. (*
  82. **      $VER: timer_protos.h 1.6 (25.1.91)
  83. *)
  84.  
  85. PROCEDURE AddTime* [base,-42]
  86.   ( VAR dest [8] : TimeVal;
  87.     VAR src  [9] : TimeVal );
  88. PROCEDURE SubTime* [base,-48]
  89.   ( VAR dest [8] : TimeVal;
  90.     VAR src  [9] : TimeVal );
  91. PROCEDURE CmpTime* [base,-54]
  92.   ( VAR dest [8] : TimeVal;
  93.     VAR src  [9] : TimeVal )
  94.   : INTEGER;
  95. PROCEDURE ReadEClock* [base,-60]
  96.   ( VAR dest [8] : EClockVal )
  97.   : e.ULONG;
  98. PROCEDURE GetSysTime* [base,-66]
  99.   ( VAR dest [8] : TimeVal );
  100.  
  101. BEGIN base := NIL
  102. END Timer.
  103.